using Lzfy_Refund_Service.Models;

namespace Lzfy_Refund_Service.Services
{
    public interface IRefundTaskMasterService
    {
        Task<RefundTaskMasterResponse?> GetByIdAsync(long id);
        Task<IEnumerable<RefundTaskMasterResponse>> GetAllAsync();
        Task<(IEnumerable<RefundTaskMasterResponse> data, int totalCount)> GetWithFilterAsync(RefundTaskMasterQueryRequest request);
        Task<IEnumerable<RefundTaskMasterResponse>> GetByUsernameAsync(string username);
        Task<long> CreateAsync(RefundTaskMasterCreateRequest request);
        Task<bool> UpdateAsync(long id, RefundTaskMasterUpdateRequest request);
        Task<bool> DeleteAsync(long id);
        Task<RefundTaskMasterResponse?> GetWithDetailsAsync(long id);
        Task<long> CreateWithHisDataAsync(RefundTaskMasterCreateRequest request);
    }
}